<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>选项卡</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    ul,
    ol,
    li {
      list-style: none;
    }

    .box {
      width: 600px;
      height: 400px;
      border: 3px solid pink;
      margin: 50px auto;
      display: flex;
      flex-direction: column;
    }

    .box>ul {
      height: 60px;
      display: flex;
    }

    .box>ul>li {
      flex: 1;
      background-color: skyblue;
      color: #fff;
      font-size: 20px;
      display: flex;
      justify-content: center;
      align-items: center;
      cursor: pointer;
    }

    .box>ul>li.active {
      background-color: orange;
    }

    .box>ol {
      flex: 1;
      position: relative;
    }

    .box>ol>li {
      width: 100%;
      height: 100%;
      background-color: purple;
      position: absolute;
      left: 0;
      top: 0;
      font-size: 100px;

      display: none;
    }

    .box>ol>li.active {
      display: block;
    }
  </style>
</head>

<body>
  <div class="box">
    <ul>
      <li class="active">a</li>
      <li>b</li>
      <li>c</li>
      <li>d</li>
    </ul>
    <ol>
      <li class="active">1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
    </ol>
  </div>
  <script>
    var headerUl = document.querySelector("ul");
    var headerItems = document.querySelectorAll("ul li");

    var boxItems = document.querySelectorAll("ol li");

    for (var i = 0; i < headerItems.length; i++) {
      // 给每个headerItems设置一个data-index，记录当前选中项的index
      headerItems[i].dataset.index = i;
      // 给每个headerItems绑定点击事件
      // headerItems[i].onclick = handler;
    }

    // headerUl.addEventListener("click", handler)

    // //事件委托
    // function handler(e) {
    //   if (e.target.tagName === "LI") {
    //     // 获取当前点击li的data-index
    //     var index = e.target.dataset.index;

    //     for (var j = 0; j < headerItems.length; j++) {
    //       // 将所有的的active样式移除
    //       headerItems[j].classList.remove("active");
    //       boxItems[j].classList.remove("active");
    //     }
    //     // 将active样式添加到当前选中项的li上
    //     headerItems[index].classList.add("active");
    //     boxItems[index].classList.add("active");
    //   }
    // }

    // 方法二：
    // function handler() {
    //   // 获取当前点击li的data-index
    //   var index = this.dataset.index;

    //   for (var j = 0; j < headerItems.length; j++) {
    //     // 先将所有的的active样式清除
    //     headerItems[j].classList.remove("active");
    //     boxItems[j].classList.remove("active");
    //   }
    //   // 将active添加到当前点击的li上
    //   headerItems[index].classList.add("active");
    //   boxItems[index].classList.add("active");
    // }

    // 方法三：
    // headerItems.forEach((ele, index) => {
    //   ele.onclick = function () {
    //     headerItems.forEach((ele, index) => {
    //       ele.classList.remove("active");
    //       boxItems[index].classList.remove("active");
    //     });

    //     ele.classList.add("active");
    //     boxItems[index].classList.add("active");
    //   }
    // })

    // 方法四：使用let
    for (let i = 0; i < headerItems.length; i++) {
      headerItems[i].onclick = function () {
        for (let i = 0; i < headerItems.length; i++) {
          headerItems[i].classList.remove("active");
          boxItems[i].classList.remove("active");
        }
        headerItems[i].classList.add("active");
        boxItems[i].classList.add("active");
      }
    }
  </script>
</body>

</html>